home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / misc_pto / asciibr / ascii.m < prev   
Text File  |  1987-08-28  |  12KB  |  240 lines

  1. ;***********************************************************************
  2. ;***                                                                 ***
  3. ;***  BRIEF - Basic Reconfigurable Interactive Editing Facility      ***
  4. ;***  ---------------------------------------------------------      ***
  5. ;***                                                                 ***
  6. ;***  This macro opens a window with a hex                           ***
  7. ;***  to Ascii translation table.                                    ***
  8. ;***                                                                 ***
  9. ;***  Roberto T. Edwards                                             ***
  10. ;***  800 Victory Boulevard                                          ***
  11. ;***  Staten Island, N.Y. 10301                                      ***
  12. ;***                                                                 ***
  13. ;***  Date: Tuesday, 27 May 1986.  Time: 08:11:00.                   ***
  14. ;***                                                                 ***
  15. ;***********************************************************************
  16.  
  17. (macro ascii_table
  18.    (
  19.       (int  asc_tabl_buf   ;*** use this buffer for the table
  20.             edit_buffer    ;*** this was in use before the table was put up
  21.             page_num       ;*** active ascii table page
  22.             key            ;*** last keystroke
  23.             done           ;*** flag 1 => exit  0 => get another keystroke
  24.       )
  25.       (string macro_cmd)
  26.       (global page_num)
  27.  
  28.       (= done 0)        ; set to 1 to exit from the macro
  29.       ;***
  30.       ;*** create a new buffer for the ascii table
  31.       ;***
  32.       (= asc_tabl_buf (create_buffer "Ascii Table" "$asc$.tmp" 1))
  33.       ;***
  34.       ;*** save the buffer that was current when we started
  35.       ;***
  36.       (= edit_buffer   (inq_buffer))
  37.       ;***
  38.       ;*** make our buffer the current one
  39.       ;***
  40.       (set_buffer asc_tabl_buf)
  41.       ;***
  42.       ;*** open a window for the ascii table
  43.       ;***
  44.       (create_window 1 22 54 1 "PgUp-Prev PgDn-Nxt Home-Fst End-Lst Esc-Exit")
  45.       ;***
  46.       ;*** attach the buffer to the window
  47.       ;***
  48.       (attach_buffer asc_tabl_buf)
  49.       (if (first_time)        
  50.          (= page_num 1)       ;*** make sure we display a valid page
  51.       )
  52.  
  53.       (sprintf macro_cmd "page_%d" page_num)
  54.       (execute_macro macro_cmd)
  55.  
  56.       (while (! done )
  57.          (
  58.             (while (== (= key (read_char)) -1))    ;*** wait for a keystroke
  59.             (if (== (& key 0xff) 0)                 ;*** was it a special key?
  60.                (
  61.                ;***
  62.                ;*** Brief doesn't really have an if-then-else construct
  63.                ;*** so the only way to do it is the following. It works,
  64.                ;*** but I sure have to use a lot of parentheses and
  65.                ;*** nesting! If there's another way, I'd love to hear
  66.                ;*** about it.
  67.                ;***
  68.                   (= key (/ key 256))
  69.                   (if (== key 81)                        ;*** PgDn
  70.                      (if (< page_num 5)
  71.                         (+= page_num 1)
  72.                      )
  73.                   ; else             
  74.                      (if (== key 73)                     ;*** PgUp
  75.                         (if (> page_num 1)
  76.                            (-= page_num 1)
  77.                         )
  78.                      ; else
  79.                         (if (== key 71)                  ;*** Home
  80.                            (= page_num 1)
  81.                         ; else
  82.                            (if (== key 79)               ;*** End
  83.                               (= page_num 5)
  84.                            )
  85.                         )
  86.                      )
  87.                   )
  88.                   (sprintf macro_cmd "page_%d" page_num)
  89.                   (execute_macro macro_cmd)
  90.                )
  91.             ;***
  92.             ;*** We get here if key != 0
  93.             ;*** else check if the escape key was hit
  94.             ;***
  95.                (if (== key 283)     ;*** if so, exit 
  96.                   (= done 1)
  97.                )
  98.             )
  99.          )
  100.       );*** end while
  101.  
  102.       (delete_window)               ;*** close the window we've been using
  103.       (delete_buffer asc_tabl_buf)  ;*** delete the buffer
  104.       (set_buffer edit_buffer)      ;*** make the last buffer current
  105.    )
  106.    ;***
  107.    ;*** All done!
  108.    ;***
  109. )
  110.  
  111. (macro page_1
  112.    (
  113.       (move_abs 1 1)
  114.       (insert " Dec  Hex  Chr     Dec  Hex  Chr     Dec  Hex  Chr\n")
  115.       (insert " ===  ===  ===     ===  ===  ===     ===  ===  ===\n")
  116.       (insert " 000  00H  NUL     018  12H  DC2    036  24H   $ \n")
  117.       (insert " 001  01H  SOH    019  13H  DC3    037  25H   % \n")
  118.       (insert " 002  02H  STX    020  14H  DC4    038  26H   & \n")
  119.       (insert " 003  03H  ETX    021  15H  NAK    039  27H   ' \n")
  120.       (insert " 004  04H  EOT    022  16H  SYN    040  28H   ( \n")
  121.       (insert " 005  05H  ENQ    023  17H  ETB    041  29H   ) \n")
  122.       (insert " 006  06H  ACK    024  18H  CAN    042  2AH   * \n")
  123.       (insert " 007  07H  BEL    025  19H  EM     043  2BH   + \n")
  124.       (insert " 008  08H  BS  \   026  1AH  SUB     044  2CH   \, \n")
  125.       (insert " 009  09H  HT      027  1BH  ESC \   045  2DH   - \n")
  126.       (insert " 010  0AH  LF      028  1CH  FS  \   046  2EH   . \n")
  127.       (insert " 011  0BH  VT      029  1DH  GS     047  2FH   / \n")
  128.       (insert " 012  0CH  FF      030  1EH  RS     048  30H   0 \n")
  129.       (insert " 013  0DH  CR      031  1FH  US     049  31H   1 \n")
  130.       (insert " 014  0EH  SO     032  20H  SP      050  32H   2 \n")
  131.       (insert " 015  0FH  SI     033  21H  !       051  33H   3 \n")
  132.       (insert " 016  10H  DLE    034  22H  \"       052  34H   4 \n")
  133.       (insert " 017  11H  DC1    035  23H  #       053  35H   5  ")
  134.    )
  135. )
  136.  
  137. (macro page_2
  138.    (
  139.       (move_abs 1 1)
  140.       (insert " Dec  Hex  Chr     Dec  Hex  Chr     Dec  Hex  Chr\n")
  141.       (insert " ===  ===  ===     ===  ===  ===     ===  ===  ===\n")
  142.       (insert " 054  36H   6      072  48H   H      090  5AH   Z \n")
  143.       (insert " 055  37H   7      073  49H   I      091  5BH   [ \n")
  144.       (insert " 056  38H   8      074  4AH   J      092  5CH   \\ \n")
  145.       (insert " 057  39H   9      075  4BH   K      093  5DH   ] \n")
  146.       (insert " 058  3AH   :      076  4CH   L      094  5EH    ^ \n")
  147.       (insert " 059  3BH   \;      077  4DH   M      095  5FH   _ \n")
  148.       (insert " 060  3CH   <      078  4EH   N      096  60H   ` \n")
  149.       (insert " 061  3DH   =      079  4FH   O      097  61H   a \n")
  150.       (insert " 062  3EH   >      080  50H   P      098  62H   b \n")
  151.       (insert " 063  3FH   ?      081  51H   Q      099  63H   c \n")
  152.       (insert " 064  40H   @      082  52H   R      100  64H   d \n")
  153.       (insert " 065  41H   A      083  53H   S      101  65H   e \n")
  154.       (insert " 066  42H   B      084  54H   T      102  66H   f \n")
  155.       (insert " 067  43H   C      085  55H   U      103  67H   g \n")
  156.       (insert " 068  44H   D      086  56H   V      104  68H   h \n")
  157.       (insert " 069  45H   E      087  57H   W      105  69H   i \n")
  158.       (insert " 070  46H   F      088  58H   X      106  6AH   j \n")
  159.       (insert " 071  47H   G      089  59H   Y      107  6BH   k  ")
  160.    )
  161. )
  162.  
  163. (macro page_3
  164.    (
  165.       (move_abs 1 1)
  166.       (insert " Dec  Hex  Chr     Dec  Hex  Chr     Dec  Hex  Chr\n")
  167.       (insert " ===  ===  ===     ===  ===  ===     ===  ===  ===\n")
  168.       (insert " 108  6CH   l      126  7EH   ~      144  90H   É \n")
  169.       (insert " 109  6DH   m      127  7FH         145  91H   æ \n")
  170.       (insert " 110  6EH   n      128  80H   Ç      146  92H   Æ \n")
  171.       (insert " 111  6FH   o      129  81H   ü      147  93H   ô \n")
  172.       (insert " 112  70H   p      120  82H   é      148  94H   ö \n")
  173.       (insert " 113  71H   q      131  83H   â      149  95H   ò \n")
  174.       (insert " 114  72H   r      132  84H   ä      150  96H   û \n")
  175.       (insert " 115  73H   s      133  85H   à      151  97H   ù \n")
  176.       (insert " 116  74H   t      134  86H   å      152  98H   ÿ \n")
  177.       (insert " 117  75H   u      135  87H   ç      153  99H   Ö \n")
  178.       (insert " 118  76H   v      136  88H   ê      154  9AH   Ü \n")
  179.       (insert " 119  77H   w      137  89H   ë      155  9BH   ¢ \n")
  180.       (insert " 120  78H   x      138  8AH   è      156  9CH   £ \n")
  181.       (insert " 121  79H   y      139  8BH   ï      157  9DH   ¥ \n")
  182.       (insert " 122  7AH   z      140  8CH   î      158  9EH   ₧ \n")
  183.       (insert " 123  7BH   {      141  8DH   ì      159  9FH   ƒ \n")
  184.       (insert " 124  7CH   |      142  8EH   Ä      160  A0H   á \n")
  185.       (insert " 125  7DH   }      143  8FH   Å      161  A1H   í  ")
  186.    )
  187. )
  188.  
  189. (macro page_4
  190.    (
  191.       (move_abs 1 1)
  192.       (insert " Dec  Hex  Chr     Dec  Hex  Chr     Dec  Hex  Chr\n")
  193.       (insert " ===  ===  ===     ===  ===  ===     ===  ===  ===\n")
  194.       (insert " 162  A2H   ó      180  B4H   ┤      198  C6H   ╞ \n")
  195.       (insert " 163  A3H   ú      181  B5H   ╡      199  C7H   ╟ \n")
  196.       (insert " 164  A4H   ñ      182  B6H   ╢      200  C8H   ╚ \n")
  197.       (insert " 165  A5H   Ñ      183  B7H   ╖      201  C9H   ╔ \n")
  198.       (insert " 166  A6H   ª      184  B8H   ╕      202  CAH   ╩ \n")
  199.       (insert " 167  A7H   º      185  B9H   ╣      203  CBH   ╦ \n")
  200.       (insert " 168  A8H   ¿      186  BAH   ║      204  CCH   ╠ \n")
  201.       (insert " 169  A9H   ⌐      187  BBH   ╗      205  CDH   ═ \n")
  202.       (insert " 170  AAH   ¬      188  BCH   ╝      206  CEH   ╬ \n")
  203.       (insert " 171  ABH   ½      189  BDH   ╜      207  CFH   ╧ \n")
  204.       (insert " 172  ACH   ¼      190  BEH   ╛      208  D0H   ╨ \n")
  205.       (insert " 173  ADH   ¡      191  BFH   ┐      209  D1H   ╤ \n")
  206.       (insert " 174  AEH   «      192  C0H   └      210  D2H   ╥ \n")
  207.       (insert " 175  AFH   »      193  C1H   ┴      211  D3H   ╙ \n")
  208.       (insert " 176  B0H   ░      194  C2H   ┬      212  D4H   ╘ \n")
  209.       (insert " 177  B1H   ▒      195  C3H   ├      213  D5H   ╒ \n")
  210.       (insert " 178  B2H   ▓      196  C4H   ─      214  D6H   ╓ \n")
  211.       (insert " 179  B3H   │      197  C5H   ┼      215  D7H   ╫  ")
  212.    )
  213. )
  214.  
  215. (macro page_5
  216.    (
  217.       (move_abs 1 1)
  218.       (insert " Dec  Hex  Chr     Dec  Hex  Chr     Dec  Hex  Chr\n")
  219.       (insert " ===  ===  ===     ===  ===  ===     ===  ===  ===\n")
  220.       (insert " 216  D8H   ╪      234  EAH   Ω      252  FCH   ⁿ \n")
  221.       (insert " 217  D9H   ┘      235  EBH   δ      253  FDH   ² \n")
  222.       (insert " 218  DAH   ┌      236  ECH   ∞      254  FEH   ■ \n")
  223.       (insert " 219  DBH   █      237  EDH   φ      255  FFH     \n")
  224.       (insert " 220  DCH   ▄      238  EEH   ε                   \n")
  225.       (insert " 221  DDH   ▐      239  EFH   ∩                   \n")
  226.       (insert " 222  DEH   ▐      240  F0H   ≡                   \n")
  227.       (insert " 223  DFH   ▀      241  F1H   ±                   \n")
  228.       (insert " 224  E0H   α      242  F2H   ≥                   \n")
  229.       (insert " 225  E1H   ß      243  F3H   ≤                   \n")
  230.       (insert " 226  E2H   Γ      244  F4H   ⌠                   \n")
  231.       (insert " 227  E3H   π      245  F5H   ⌡                   \n")
  232.       (insert " 228  E4H   Σ      246  F6H   ÷                   \n")
  233.       (insert " 229  E5H   σ      247  F7H   ≈                   \n")
  234.       (insert " 230  E6H   µ      248  F8H   °                   \n")
  235.       (insert " 231  E7H   τ      249  F9H   ∙                   \n")
  236.       (insert " 232  E8H   Φ      250  FAH   ·                   \n")
  237.       (insert " 233  E9H   Θ      251  FBH   √                    ")
  238.    )
  239. )
  240.